Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Silence objtool warnings from 55d7afa4adbb4ca569e9c4477a7d121f4dc0bfbd #14068

Merged
merged 1 commit into from
Oct 26, 2022

Conversation

ryao
Copy link
Contributor

@ryao ryao commented Oct 21, 2022

Motivation and Context

The use of noreturn in 55d7afa on spl_panic() caused objtool warnings on Linux when the kernel is built with CONFIG_STACK_VALIDATION=y.

Description

This patch works around that by restricting the application of noreturn to builds for static analyzers.

How Has This Been Tested?

A build test has been done.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Library ABI change (libzfs, libzfs_core, libnvpair, libuutil and libzfsbootenv)
  • Documentation (a change to man pages or other documentation)

Checklist:

@ryao ryao force-pushed the fix-objtool-warnings branch from 9aca459 to 705ca2a Compare October 21, 2022 21:13
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Signed-off-by: Richard Yao <[email protected]>
@ryao ryao force-pushed the fix-objtool-warnings branch from 705ca2a to 0728853 Compare October 21, 2022 21:26
@behlendorf behlendorf added the Status: Code Review Needed Ready for review and testing label Oct 21, 2022
@behlendorf behlendorf added Status: Accepted Ready to integrate (reviewed, tested) and removed Status: Code Review Needed Ready for review and testing labels Oct 21, 2022
@behlendorf behlendorf merged commit eeddd80 into openzfs:master Oct 26, 2022
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 27, 2022
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes openzfs#14068
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Nov 9, 2022
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes openzfs#14068
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Nov 9, 2022
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes openzfs#14068
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Nov 9, 2022
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes openzfs#14068
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Nov 9, 2022
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes openzfs#14068
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Nov 9, 2022
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes openzfs#14068
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Nov 9, 2022
The use of __noreturn__ in 55d7afa on
spl_panic() caused objtool warnings on Linux when the kernel is built
with CONFIG_STACK_VALIDATION=y. This patch works around that by
restricting the application of __noreturn__ to builds for static
analyzers.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes openzfs#14068
@amotin
Copy link
Member

amotin commented Mar 8, 2024

@ryao I think this may result in generation of less efficient code in production. It would be good to let compiler know which function do not return. Is there hope that affected toolchain become irrelevant at some point?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Accepted Ready to integrate (reviewed, tested)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants